<!--
 * @Description: react基础
 * @Author: rendc
 * @Date: 2022-06-15 08:40:01
 * @LastEditors: rendc
 * @LastEditTime: 2022-06-15 09:18:00
-->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>React</title>
  <!-- 加载 React。-->
  <!-- 注意: 部署时，将 "development.js" 替换为 "production.min.js"。-->
  <script src="https://unpkg.com/react@17/umd/react.development.js"></script>
  <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
  <!-- 加载我们的 React 组件。-->
  <script src="./babel.min.js"></script>
</head>

<body>
  <div>react</div>
  <div id="app">
  </div>
</body>
<script type="text/babel">
  // function Clock(props){
  //   return (
  //     <div>
  //       <h1>现在的时间是：</h1>
  //       <h1>{props.date.toLocaleTimeString()}</h1>
  //     </div>
  //   )
  // }
  // function App(){
  //   return (
  //     <div>
  //       <Clock date={new Date()} />
  //     </div>
  //   )
  // }
  // 类组件
  class Clock extends React.Component{
    constructor(props){
      super(props)
      this.state = { date:new Date()}
    }
    componentDidMount() {
      // 这个函数在组件被渲染到dom时执行
      this.timer = setInterval(
        ()=>this.myTime()
      , 1000);
    }

    myTime(){
      this.setState({
        date:new Date()
      })
    }

    componentWillUnmount() {
      clearInterval(this.timer)
    }
    render(){
      return (
        <div>
          <h1>现在的时间是：</h1>
          <h1>{this.state.date.toLocaleTimeString()}</h1>
        </div>
      )
    }
  }
  
  ReactDOM.render(
    <Clock/>,
    document.getElementById('app')
  )

</script>

</html>